package br.com.treinamento.gestaoExperienciaProfissional.validator;

import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.validator.FacesValidator;
import javax.faces.validator.Validator;
import javax.faces.validator.ValidatorException;

import br.com.treinamento.gestaoExperienciaProfissional.model.Usuario;
import br.com.treinamento.gestaoExperienciaProfissional.service.UsuarioService;
import br.com.treinamento.gestaoExperienciaProfissional.util.FacesUtil;

@FacesValidator("loginValidator")
public class LoginValidator implements Validator {

	@Override
	public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException {
		if(value != null){
			UsuarioService usuarioService = new UsuarioService();
			Usuario usuario = usuarioService.buscarPorLogin(value.toString());
			
			Integer idUsuario = (Integer) component.getAttributes().get("idUsuario");
			if(usuario != null && !usuario.getId().equals(idUsuario)) {
				String mensagem = FacesUtil.getMessage("msg.oLogin");
				String mensagem2 = FacesUtil.getMessage("msg.jaFoiCadastrado");
				FacesMessage msg = new FacesMessage(mensagem + value + " " + mensagem2 , mensagem + value + mensagem2);
				msg.setSeverity(FacesMessage.SEVERITY_ERROR);
				throw new ValidatorException(msg);
			}
		}
	}

}
